// pages/DeliveryAddress/AddDeliveryAddress/AddDeliveryAddress.js
import { modifyDeliveryAddress } from '../../../service/delivery-address';
import { isPhoneValid } from '../../../utils/valid';

Page({
    /**
     * 页面的初始数据
     */
    data: {
        // 收货地址ID
        deliveryAddressId: -1,
        // 收货人姓名
        receiverName: '',
        // 收货人手机号码
        receiverPhone: '',
        // 省份
        province: '',
        // 城市
        city: '',
        // 区/县
        district: '',
        // 详细地址
        detailAddress: '',
        // 是否默认地址（0：否，1：是）
        isDefault: true,
        region: ['河南省', '南阳市', '镇平县'],
    },
    /**
     * 生命周期函数
     */
    onLoad({ option }) {
        const addressInfo = JSON.parse(decodeURIComponent(option)).deliveryAddress;
        this.setData({
            receiverName: addressInfo.receiverName,
            receiverPhone: addressInfo.receiverPhone,
            province: addressInfo.province,
            city: addressInfo.city,
            district: addressInfo.district,
            detailAddress: addressInfo.detailAddress,
            isDefault: addressInfo.isDefault === 1,
            region: [addressInfo.province, addressInfo.city, addressInfo.district],
            deliveryAddressId: addressInfo.id,
        });
    },
    /**
     * 省市区选择器
     */
    bindRegionChange(event) {
        this.setData({
            region: event.detail.value,
        });
    },
    /**
     * 点击默认地址选择按钮
     */
    onTapSwitcher(event) {
        this.setData({
            isDefault: event.detail.value,
        });
    },
    /**
     * 点击修改地址按钮
     */
    async onTapModifyAddress() {
        if (this.data.receiverName.length === 0) {
            wx.showToast({
                title: '收货人不能为空', // 提示文本
                icon: 'error', // 图标（success/loading/none）
                duration: 1000, // 显示时长（ms）
                mask: true, // 是否显示透明遮罩（防止点击穿透）
            });
            return;
        }
        if (!isPhoneValid(this.data.receiverPhone)) {
            wx.showToast({
                title: '手机号格式错误', // 提示文本
                icon: 'error', // 图标（success/loading/none）
                duration: 1000, // 显示时长（ms）
                mask: true, // 是否显示透明遮罩（防止点击穿透）
            });
            return;
        }
        if (this.data.detailAddress.length === 0) {
            wx.showToast({
                title: '请填写详细地址', // 提示文本
                icon: 'error', // 图标（success/loading/none）
                duration: 1000, // 显示时长（ms）
                mask: true, // 是否显示透明遮罩（防止点击穿透）
            });
            return;
        }
        const param = {
            ...this.data,
        };
        param.isDefault = param.isDefault ? 1 : 0;
        param.province = param.region[0];
        param.city = param.region[1];
        param.district = param.region[2];
        wx.showLoading({
            title: '修改中',
            mask: true,
        });
        await modifyDeliveryAddress(this.data.deliveryAddressId, param);
        wx.hideLoading();
        wx.showToast({
            title: '修改成功', // 提示文本
            icon: 'success', // 图标（success/loading/none）
            duration: 2000, // 显示时长（ms）
            mask: true, // 是否显示透明遮罩（防止点击穿透）
        });
        wx.navigateBack();
    },
});
